#include <stdio.h>
#define N 6
int a[10000001];
int dp[1000001];
int b[10000001];

int minp(int n,int i) {
    int ans;
    if(i<=n) {
            ans = 0;
    }
    else {
        ans = dp[i-n];
        for(int j = i-n+1;j<i;j++) {
            if(ans>dp[j])ans = dp[j];
        }
    }
    return ans+1;
};

int minm(int i,int m) {
    int ans = 100000001;
    for(int j = 0;j<m;j++) {//还要考虑除数为0的情况
        if(i%b[j]==0 && ans>dp[i/b[j]]) {
            ans = dp[i/b[j]]+1;
        }
    }
    return ans;
};

int min(int a,int b) {
    if(a>b)return b;
    return a;
}

int main() {
    int y,n,m;
    int t1,t2;
    scanf("%d %d %d",&y,&n,&m);
    for(int i = 0;i<m;i++) {
        scanf("%d",&b[i]);
    }
    for(int i = 1;i<=y;i++) {
        t1 = minp(n,i);
        t2 = minm(i,m);
        dp[i] = min(t1,t2);
    }
    printf("%d",dp[y]);
    return 0;
}





